﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using IceDog.DNC.Web.Swashbuckle1_X.CustomAttribute;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

namespace IceDog.DNC.Web.Swashbuckle1_X.Controllers
{
    /// <summary>
    /// 可以返回大量的数字
    /// </summary>
    //[Produces("application/json")]
    [Route("api/[controller]")]
    [ApiVersion]
    public class NumberController : Controller
    {
        /// <summary>
        /// 获取数字
        /// </summary>
        /// <param name="num">数字</param>
        /// <returns></returns>
        [HttpGet]
        public ActionResult GetNum([FromQuery]int num)
        {
            return Ok(new {number = num});
        }
        /*
        /// <summary>
        /// 获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数
        /// 字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public ActionResult GetNum1()
        {
            return Ok(new { number = 1 });
        }
        
        /// <summary>
        /// 获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数
        /// 字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字
        /// </summary>
        /// <returns></returns>
        public ActionResult GetNum2()
        {
            return Ok(new { number = 2 });
        }
        /// <summary>
        /// 获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数
        /// 字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字
        /// </summary>
        /// <returns></returns>
        public ActionResult GetNum3()
        {
            return Ok(new { number = 3 });
        }
        /// <summary>
        /// 获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数
        /// 字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字
        /// </summary>
        /// <returns></returns>
        public ActionResult GetNum4()
        {
            return Ok(new { number = 4 });
        }
        /// <summary>
        /// 获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数
        /// 字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字
        /// </summary>
        /// <returns></returns>
        public ActionResult GetNum5()
        {
            return Ok(new { number = 5 });
        }
        /// <summary>
        /// 获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数
        /// 字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字
        /// </summary>
        /// <returns></returns>
        public ActionResult GetNum6()
        {
            return Ok(new { number = 6 });
        }
        /// <summary>
        /// 获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数
        /// 字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字
        /// </summary>
        /// <returns></returns>
        public ActionResult GetNum7()
        {
            return Ok(new { number = 7 });
        }
        /// <summary>
        /// 获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数
        /// 字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字
        /// </summary>
        /// <returns></returns>
        public ActionResult GetNum8()
        {
            return Ok(new { number = 8 });
        }
        /// <summary>
        /// 获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数
        /// 字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字
        /// </summary>
        /// <returns></returns>
        public ActionResult GetNum9()
        {
            return Ok(new { number = 9 });
        }
        /// <summary>
        /// 获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数
        /// 字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字获取数字
        /// </summary>
        /// <returns></returns>
        public ActionResult GetNum10()
        {
            return Ok(new { number = 10 });
        }
        */

        /// <summary>
        /// summary:xxx
        /// </summary>
        /// <example>
        /// example:xxx
        /// </example>
        /// <remarks>
        /// remarks:xxx
        /// </remarks>
        /// <param name="num">param:num:xxx</param>
        /// <returns>returns:xxx</returns>
        /// <response code="100">Continue</response>
        /// <response code="101">Switching Protocols</response>
        /// <response code="102">Processing</response>
        /// <response code="200">OK</response>
        /// <response code="201">Created</response>
        /// <response code="202">Accepted</response>
        /// <response code="203">Non-Authoritative Information</response>
        /// <response code="204">No Content</response>
        /// <response code="205">Reset Content</response>
        /// <response code="206">Partial Content</response>
        /// <response code="207">Multi-Status</response>
        /// <response code="300">Multiple Choices</response>
        /// <response code="301">Moved Permanently</response>
        /// <response code="302">Found</response>
        /// <response code="303">See Other</response>
        /// <response code="304">Not Modified</response>
        [HttpPost("{num}")]
        [ProducesResponseType(statusCode: 100)]
        [ProducesResponseType(statusCode: 101)]
        [ProducesResponseType(statusCode: 102)]
        [ProducesResponseType(statusCode: 200)]
        [ProducesResponseType(statusCode: 201)]
        [ProducesResponseType(statusCode: 202)]
        [ProducesResponseType(statusCode: 203)]
        [ProducesResponseType(statusCode: 204)]
        [ProducesResponseType(statusCode: 205)]
        [ProducesResponseType(statusCode: 206)]
        [ProducesResponseType(statusCode: 207)]
        [ProducesResponseType(statusCode: 300)]
        [ProducesResponseType(statusCode: 301)]
        [ProducesResponseType(statusCode: 302)]
        [ProducesResponseType(statusCode: 303)]
        [ProducesResponseType(statusCode: 304)]
        [ProducesResponseType(statusCode: 305)]
        [ProducesResponseType(statusCode: 306)]
        [ProducesResponseType(statusCode: 307)]
        [ProducesResponseType(statusCode: 400)]
        [ProducesResponseType(statusCode: 401)]
        [ProducesResponseType(statusCode: 402)]
        [ProducesResponseType(statusCode: 403)]
        [ProducesResponseType(statusCode: 404)]
        [ProducesResponseType(statusCode: 405)]
        [ProducesResponseType(statusCode: 406)]
        [ProducesResponseType(statusCode: 407)]
        [ProducesResponseType(statusCode: 408)]
        [ProducesResponseType(statusCode: 409)]
        [ProducesResponseType(statusCode: 410)]
        [ProducesResponseType(statusCode: 411)]
        [ProducesResponseType(statusCode: 412)]
        [ProducesResponseType(statusCode: 413)]
        [ProducesResponseType(statusCode: 414)]
        [ProducesResponseType(statusCode: 415)]
        [ProducesResponseType(statusCode: 416)]
        [ProducesResponseType(statusCode: 417)]
        [ProducesResponseType(statusCode: 418)]
        [ProducesResponseType(statusCode: 421)]
        [ProducesResponseType(statusCode: 422)]
        [ProducesResponseType(statusCode: 423)]
        [ProducesResponseType(statusCode: 424)]
        [ProducesResponseType(statusCode: 425)]
        [ProducesResponseType(statusCode: 426)]
        [ProducesResponseType(statusCode: 449)]
        [ProducesResponseType(statusCode: 499)]
        [ProducesResponseType(statusCode: 500)]
        [ProducesResponseType(statusCode: 501)]
        [ProducesResponseType(statusCode: 502)]
        [ProducesResponseType(statusCode: 503)]
        [ProducesResponseType(statusCode: 504)]
        [ProducesResponseType(statusCode: 505)]
        [ProducesResponseType(statusCode: 506)]
        [ProducesResponseType(statusCode: 507)]
        [ProducesResponseType(statusCode: 509)]
        [ProducesResponseType(statusCode: 510)]
        public IActionResult GetNumByNum(int num)
        {
            return Ok();
        }
    }
}